|
Thomas Colcombet |
|
I am currently a PhD student in the Lande
group at Irisa. My advisor is Pascal
Fradet. My research aims at studying and formalizing aspect-oriented
programming (AOP).
What is AOP ?
AOP is a recent paradigm for programming languages.
Its goal is to provide an alternative way to divide programs into pieces.
In usual programming techniques, the code is divided into functional units
(objects, functions, methods, modules...). This approach has nice properties
(e.g. well suited for separate compilation), however it often happens that
some program features do not fit in this framework. Security, robustness,
data representation or optimisations are examples of such choices that
influence/determine the whole implementation.
In an aspect-oriented programming approach, the
developer has language facilities for describing such concerns that cross-cut
the program basic functionalities. The functional part of the software
is described in the component, and other properties are described in aspects.
A special tool (a weaver) then integrates the aspects into the component,
producing intermediate code. This code is then compiled using standard
techniques.
AOP is a promising tool in software engineering.
Several case studies have shown its great potential. Nevertheless, this
approach still lacks a strong theoretical background.